/**    
 * 文件名：Ex3Sharpen.java    
 *    
 * 版本信息：    
 * 日期：2014年3月7日    
 * xyj 足下 xyj 2014     
 * 版权所有    
 *    
 */
package opencvtest.chapter02;

import static com.googlecode.javacv.cpp.opencv_core.CV_32F;
import static com.googlecode.javacv.cpp.opencv_core.cvGetSize;
import static com.googlecode.javacv.cpp.opencv_highgui.CV_LOAD_IMAGE_COLOR;
import static com.googlecode.javacv.cpp.opencv_imgproc.BORDER_DEFAULT;
import static com.googlecode.javacv.cpp.opencv_imgproc.filter2D;
import static opencvtest.OpenCVUtils.loadAndShowOrExit;
import static opencvtest.OpenCVUtils.show;

import java.io.File;

import com.googlecode.javacv.cpp.opencv_core.CvMat;
import com.googlecode.javacv.cpp.opencv_core.CvPoint;
import com.googlecode.javacv.cpp.opencv_core.IplImage;

/**
 * @项目名称：opencv-test
 * @类名称：Ex3Sharpen
 * @类描述：
 * @创建人：zhuyi
 * @创建时间：2014年3月7日 下午3:35:30
 * @修改人：zhuyi
 * @修改时间：2014年3月7日 下午3:35:30
 * @修改备注：
 * @version
 * 
 */
public class Ex3Sharpen {

    public static void main(String[] args) {

        // Read input image
        IplImage image = loadAndShowOrExit(new File("data/boldt.jpg"), CV_LOAD_IMAGE_COLOR);

        // Define output image
        IplImage dest = IplImage.create(cvGetSize(image), image.depth(), 3);

        // Construct sharpening kernel, oll unassigned values are 0
        CvMat kernel = CvMat.create(3, 3, CV_32F);
        kernel.put(1, 1, 5);
        kernel.put(0, 1, -1);
        kernel.put(2, 1, -1);
        kernel.put(1, 0, -1);
        kernel.put(1, 2, -1);

        // Filter the image
        filter2D(image, dest, -1, kernel, new CvPoint(-1, -1), 0, BORDER_DEFAULT);

        show(dest, "Sharpened");
    }

}
